﻿using Nop.Plugin.Misc.Reservations.Models;
using System;
using System.Collections.Generic;

namespace Nop.Plugin.Misc.Reservations.Services
{
    public interface IReservationBusiness
    {
        Reservation ReservationById(int reservationID);
        Reservation CurrentReservation(int customerId, DateTime selectedDate, int tableIndex);
        Reservation CheckReservationConflict(DateTime selectedDate, int tableIndex);
        IList<Reservation> ReservationsByDate(DateTime startDate, DateTime endDate);
        IList<Reservation> ReservationsByCustomer(int customerID);
        IList<Reservation> ReservationsByProductID(int productID, DateTime startDate, DateTime endDate);
        IList<Reservation> ReservationsByOrderGuid(Guid orderGuid);
        IList<Reservation> BookedReservationsByDate(DateTime selectedDate);
        IList<Reservation> CurrentReservationsByCustomerId(int customerId);
        void Insert(Reservation reservation);
        void Update(Reservation reservation);
        void Remove(Reservation reservation);
    }
}
